import axios from "./http.js";
import { ElMessage } from "element-plus";
export default {
    get(_url, _param, _response, _finally) {
        axios.get(_url, { params: _param })
            .then(res => {
                if (res) {
                    if (res.code === 200) {
                        _response(res);
                    }
                    else {
                        ElMessage.error(res.msg);
                    }
                }
            })
            .catch(error => {
                ElMessage.error(error.msg)
                console.log(error);
            }).finally(_end => {
                if (_finally) {
                    _finally(_end);
                }
            });
    },
    getWithoutParam(_url, _response, _finally) {
        axios.get(_url)
            .then(res => {
                if (res) {
                    if (res.code === 200) {
                        _response(res);
                    }
                    else {
                        ElMessage.error(res.msg);
                    }
                }
            })
            .catch(error => {
                ElMessage.error(error.msg)
                console.log(error);
            }).finally(_end => {
                if (_finally) {
                    _finally(_end);
                }
            });
    },
    postWithForm(_url, _param, _response, _finally) {
        axios.post(_url, _param, { headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8;' } })
            .then(res => {
                if (res) {
                    if (res.code === 200) {
                        _response(res);
                    }
                    else {
                        ElMessage.error(res.msg);
                    }
                }
            })
            .catch(error => {
                ElMessage.error(error.msg)
                console.log(error);
            }).finally(_end => {
                if (_finally) {
                    _finally(_end);
                }
            });
    },
    postWithJson(_url, _param, _response, _finally) {
        return axios.post(_url, _param, { headers: { 'Content-Type': 'application/json;charset=UTF-8;' } })
            .then(res => {
                if (res) {
                    if (res.code === 200) {
                        _response(res);
                    }
                    else {
                        ElMessage.error(res.msg);
                    }
                }
            })
            .catch(error => {
                ElMessage.error(error.msg)
                console.log(error);
            }).finally(_end => {
                if (_finally) {
                    _finally(_end);
                }
            });
    },
    postWithMultipart(_url, _param, _response, _finally) {
        return axios.post(_url, _param, { headers: { 'Content-Type': 'multipart/form-data' } })
            .then(res => {
                if (res) {
                    if (res.code === 200) {
                        _response(res);
                    }
                    else {
                        ElMessage.error(res.msg);
                    }
                }
            })
            .catch(error => {
                ElMessage.error(error.msg)
                console.log(error);
            }).finally(_end => {
                if (_finally) {
                    _finally(_end);
                }
            });
    },
    put(_url, _param, _response, _finally) {
        axios.put(_url, _param, { headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8;' } })
            .then(res => {
                if (res) {
                    if (res.code === 200) {
                        _response(res);
                    }
                    else {
                        ElMessage.error(res.msg);
                    }
                }
            })
            .catch(error => {
                ElMessage.error(error.msg)
                console.log(error);
            }).finally(_end => {
                if (_finally) {
                    _finally(_end);
                }
            });
    },
    putWithJson(_url, _param, _response, _finally) {
        axios.put(_url, _param, { headers: { 'Content-Type': 'application/json;charset=UTF-8;' } })
            .then(res => {
                if (res) {
                    if (res.code === 200) {
                        _response(res);
                    }
                    else {
                        ElMessage.error(res.msg);
                    }
                }
            })
            .catch(error => {
                ElMessage.error(error.msg)
                console.log(error);
            }).finally(_end => {
                if (_finally) {
                    _finally(_end);
                }
            });
    },
    delete(_url, _param, _response, _finally) {
        axios.delete(_url, { param: _param })
            .then(res => {
                if (res) {
                    if (res.code === 200) {
                        _response(res);
                    }
                    else {
                        ElMessage.error(res.msg);
                    }
                }
            })
            .catch(error => {
                ElMessage.error(error.msg)
                console.log(error);
            }).finally(_end => {
                if (_finally) {
                    _finally(_end);
                }
            });
    },
    deleteWithouParam(_url, _response, _finally) {
        axios.delete(_url)
            .then(res => {
                if (res) {
                    if (res.code === 200) {
                        _response(res);
                    }
                    else {
                        ElMessage.error(res.msg);
                    }
                }
            })
            .catch(error => {
                ElMessage.error(error.msg)
                console.log(error);
            }).finally(_end => {
                if (_finally) {
                    _finally(_end);
                }
            });
    }
};